package com.ruoyi.mes.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 发货通知对象 sle_deliver
 * 
 * @author CFL
 * @date 2024-04-28
 */
public class SleDeliver extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 发货_id */
    private Long id;

    /** 销售订单id */
    private Long orderId;

    /** 出库id */
    private Long dfsId;

    /** 产品id */
    private Long proId;


    /** 发货状态 */
    private Integer deviState;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderSn;


    /** 签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signDate;


//    /** 发货日期 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "出库日期", width = 30, dateFormat = "yyyy-MM-dd")
//    private Date deviDate;


    /** 交货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliverDate;


    /** 产品编码 */
    @Excel(name = "产品编码")
    private String proSn;

    /** 产品数量 */
    @Excel(name = "产品数量")
    private Long orderNumber;


    /** 出库数量 */
    @Excel(name = "出库数量")
    private Long strmNum;

    /** 发货单号 */
    @Excel(name = "发货单号")
    private String deviSn;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String proName;

    /** 需求数量 */
    private Long deviNum;


    /** 逻辑删除;0：存在；1：删除 */
    private Integer isDeleted;


    /** 已发货数量 */
    private Long deliverNum;

    /** 创建者 */
    @Excel(name = "创建者")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    /** 更新者 */
    private String updatedBy;

    /** 更新时间 */
    private Date updatedDate;


    /** 发货产品信息 */
    private List<DeliverDetailVo> detailsList;


    public Long getDeliverNum() {
        return deliverNum;
    }

    public void setDeliverNum(Long deliverNum) {
        this.deliverNum = deliverNum;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public Date getSignDate() {
        return signDate;
    }

    public void setSignDate(Date signDate) {
        this.signDate = signDate;
    }
    public Date getDeliverDate() {
        return deliverDate;
    }

    public void setDeliverDate(Date deliverDate) {
        this.deliverDate = deliverDate;
    }
    public String getProSn() {
        return proSn;
    }

    public void setProSn(String proSn) {
        this.proSn = proSn;
    }
    public Long getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(Long orderNumber) {
        this.orderNumber = orderNumber;
    }
    public String getOrderSn() {
        return orderSn;
    }

    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn;
    }
    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }
    public void setDfsId(Long dfsId) 
    {
        this.dfsId = dfsId;
    }

    public Long getDfsId() 
    {
        return dfsId;
    }
    public Integer getDeviState() {
        return deviState;
    }

    public void setDeviState(Integer deviState) {
        this.deviState = deviState;
    }
    public void setProId(Long proId) 
    {
        this.proId = proId;
    }

    public Long getProId() 
    {
        return proId;
    }
    public void setDeviSn(String deviSn) 
    {
        this.deviSn = deviSn;
    }

    public String getDeviSn() 
    {
        return deviSn;
    }
    public void setDeviNum(Long deviNum) 
    {
        this.deviNum = deviNum;
    }

    public Long getDeviNum() 
    {
        return deviNum;
    }
    public void setIsDeleted(Integer isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted() 
    {
        return isDeleted;
    }
    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }
    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }
    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }
    public void setUpdatedDate(Date updatedDate) 
    {
        this.updatedDate = updatedDate;
    }

    public Date getUpdatedDate() 
    {
        return updatedDate;
    }
    public List<DeliverDetailVo> getDetailsList() {
        return detailsList;
    }

    public void setDetailsList(List<DeliverDetailVo> detailsList) {
        this.detailsList = detailsList;
    }

    public Long getStrmNum() {
        return strmNum;
    }

    public void setStrmNum(Long strmNum) {
        this.strmNum = strmNum;
    }

//    public Date getDeviDate() {
//        return deviDate;
//    }
//
//    public void setDeviDate(Date deviDate) {
//        this.deviDate = deviDate;
//    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("dfsId", getDfsId())
            .append("proId", getProId())
            .append("deviSn", getDeviSn())
            .append("deviNum", getDeviNum())
            .append("isDeleted", getIsDeleted())
            .append("createdBy", getCreatedBy())
            .append("createdTime", getCreatedTime())
            .append("updatedBy", getUpdatedBy())
            .append("updatedDate", getUpdatedDate())
            .append("orderSn",getOrderSn())
            .append("signDate",getSignDate())
            .append("deliverDate",getDeliverDate())
            .append("proSn",getProSn())
            .append("proName",getProName())
            .append("orderNumber",getOrderNumber())
            .append("remark", getRemark())
            .toString();
    }

}
